Extracting Object Histories

The Extract Object History as Macro feature lets you extract macros that can be played to understand the history of an object or to create new objects from complex scenarios that make use of multiple tools.

The Miscellaneous preference, Keep object history, lets you save an object's history in exported *.ORSObject formatted files (see Miscellaneous Preferences). You should note that saving object histories can time-consuming and that the GUID of all objects is always preserved when a session is saved or loaded.

When a new session is started or a session is loaded, the tag 'Session started' is added to the Action log with the current date and time. This serves as the session ID. If objects are loaded, the identity of those objects (GUID) are written in a starting inventory in the Action log, with logger variable names.

The session history is saved whenever a session is saved, and includes everything from the end of the Action log up to the last 'Session started' entry. The starting inventory is also saved, as well as the ending inventory, with the identity of the objects saved with the session (GUID) and the logger variable names. You should note that when a session is loaded, the past history is recovered and the history of the current session is kept as a separate history.

When an object history is extracted, the whole history of the session is taken from the end to the beginning, one session history at a time:

When the evaluation of the blocks is done for a single session history, the logger variables found in the starting inventory are identified and passed to the previous session history using their GUID. A second pass is done through the whole list of blocks to identify the pure deletion blocks to keep, that is, those affecting the variables present in the whole history.